package com.base.common.dto;

import lombok.Data;

/**
 * 页面组件业务数据DTO（前端→后端传递数据用）
 */
@Data
public class PageComponentDataDTO {

    /**
     * 关联的页面ID（必传）
     * 对应数据库 pages.id，前端从页面编辑页获取当前页面ID
     */
    private Long pageId;

    /**
     * 组件唯一标识（必传）
     * 必须与 pages.schema_json 中 components[].id 完全一致（如 "1760420658504"）
     * 确保组件数据与组件定位信息一一对应
     */
    private String componentId;

    /**
     * 组件类型（必传）
     * 必须与 pages.schema_json 中 components[].type 完全一致（如 "swiper"、"news"、"notice"）
     * 用于后端区分组件类型，便于后续扩展（如不同组件的特殊处理）
     */
    private String componentType;

    /**
     * 组件业务数据JSON字符串（必传）
     * 前端需将组件业务数据对象转为JSON字符串传递（如轮播图：{"images":[{"url":"xxx","alt":"xxx"}]}）
     * 允许空JSON（如 "{}"），但不允许null或空白字符串
     */
    private String dataJson;

    /**
     * 扩展字段：组件备注（可选）
     * 前端可传递组件的额外说明（如 "首页轮播图-PC端"），非必传，用于后台管理备注
     */
    private String remark;
}